package com.yuou.mapper;

import java.util.List;
import java.util.Map;

import com.yuou.model.Blog;

public interface BlogMapper {
    /**
     * 通过id删除
     * @param id
     * @return
     */
    int deleteBlogById(Integer id);
    /**
     * 添加(不判断非空)
     * @param record
     * @return
     */
    int insertBlog(Blog record);
    /**
     * 刷新缓存
     * @return
     */
    int refreshCache();
    /**
     * 添加(不判断非空)
     * @param record
     * @return
     */
    int insertBlogSelective(Blog record);
    /**
     * 通过id查询
     * @param id
     * @return
     */
    Blog selectBlogById(Integer id);
    /**
     * 通过类别id查询
     * @param id
     * @return
     */
    List<Blog> selectBlogByTypeId(Integer id);

    /**
     *  获取上一篇博客
     * @param id
     * @return
     */
 	Blog selectPrevBlog(Integer id);

 	/**
 	 *  获取下一篇一篇博客
 	 * @param id
 	 * @return
 	 */
 	Blog selectNextBlog(Integer id);

 	/**
 	 *  获取博客信息，根据日期月份分组查询
 	 * @return
 	 */
 	List<?>  selectBlogListByDate(Map<String, Object> map);

 	/**
 	 * 获取博客信息，根据状态分组查询
 	 * @return
 	 */
 	List<?>  selectBlogListByStatus();
 	/**
 	 * 获取博客信息，根据点击量排序
 	 * @return
 	 */
 	List<Blog> selectGroupLikeBlogListByClickNum(Map<String, Object> map);
 	
 	List<?> selectBlogByClick();
 	
 	/**
 	 * 按不同条件组合 分页查询博客
 	 * @param map
 	 * @return
 	 */
 	
 	List<Blog> selectBlogListByPage(Map<String, Object> map);
 	/**
 	 * 模糊分页查询博客
 	 * @param map
 	 * @return
 	 */
 	List<Blog> selectLikeBlogListByPage(Map<String, Object> map);
 	/**
 	 * 模糊分页组合查询博客 (不含内容)
 	 * @param map
 	 * @return
 	 */
 	List<Blog> selectGroupLikeBlogListByPage(Map<String, Object> map);
 	/**
 	 * 模糊分页组合查询博客 含内容
 	 * @param map
 	 * @return
 	 */
 	List<Blog> selectLikeBlogListByPageWithBlobs(Map<String, Object> map);
 	/**
 	 *  根据组合条件获取Blog条数
 	 * @param map
 	 * @return
 	 */
 	Long selectBlogCount(Map<String, Object> map);

 	/**
 	 * 更新博客判断非空
 	 * @param record
 	 * @return
 	 */
    int updateBlogSelective(Blog record);

}